home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload Trio 2 / Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO / dir43 / med300.zip / CLMEM.A next >
Text File  |  1994-02-22  |  5KB  |  118 lines

  1.  
  2. module clmem
  3.  
  4. extrn F$StkChk
  5. extrn _malloc
  6. extrn _free
  7. extrn _memmove
  8. extrn _memset
  9. extrn _memwset
  10.  
  11. segment CLMEM_TEXT(CODE,00048H) (*segment length = 0001EH*)
  12.                             public CMalloc:
  13. (*0000 55*)                   push  bp
  14. (*0001 BD 08 00*)             mov   bp,8
  15. (*0004 9A 00 00 00 00*)       call  far F$StkChk
  16. (*0009 8B EC*)                mov   bp,sp
  17. (*000B 4C*)                   dec   sp
  18. (*000C 4C*)                   dec   sp
  19. (*000D 89 46 FE*)             mov   [bp][-2],ax
  20. (*0010 8B 46 FE*)             mov   ax,[bp][-2]
  21. (*0013 9A 00 00 00 00*)       call  far _malloc
  22. (*0018 90*)                   nop   
  23. (*0019 90*)                   nop   
  24. (*001A 8B E5*)                mov   sp,bp
  25. (*001C 5D*)                   pop   bp
  26. (*001D CB*)                   ret far 0
  27.  
  28. segment CLMEM_TEXT(CODE,00048H) (*segment length = 00023H*)
  29.                             public CFree:
  30. (*0000 55*)                   push  bp
  31. (*0001 BD 0A 00*)             mov   bp,0AH
  32. (*0004 9A 00 00 00 00*)       call  far F$StkChk
  33. (*0009 8B EC*)                mov   bp,sp
  34. (*000B 83 EC 04*)             sub   sp,4
  35. (*000E 89 46 FC*)             mov   [bp][-4],ax
  36. (*0011 89 5E FE*)             mov   [bp][-2],bx
  37. (*0014 C4 46 FC*)             les   ax,[bp][-4]
  38. (*0017 8C C3*)                mov   bx,es
  39. (*0019 9A 00 00 00 00*)       call  far _free
  40. (*001E 90*)                   nop   
  41. (*001F 8B E5*)                mov   sp,bp
  42. (*0021 5D*)                   pop   bp
  43. (*0022 CB*)                   ret far 0
  44.  
  45. segment CLMEM_TEXT(CODE,00048H) (*segment length = 00035H*)
  46.                             public CMemMove:
  47. (*0000 55*)                   push  bp
  48. (*0001 BD 10 00*)             mov   bp,10H
  49. (*0004 9A 00 00 00 00*)       call  far F$StkChk
  50. (*0009 8B EC*)                mov   bp,sp
  51. (*000B 83 EC 08*)             sub   sp,8
  52. (*000E 1E*)                   push  ds
  53. (*000F 89 4E FC*)             mov   [bp][-4],cx
  54. (*0012 89 56 FE*)             mov   [bp][-2],dx
  55. (*0015 89 46 F8*)             mov   [bp][-8],ax
  56. (*0018 89 5E FA*)             mov   [bp][-6],bx
  57. (*001B FF 76 06*)             push  word [bp][6]
  58. (*001E C5 46 F8*)             lds   ax,[bp][-8]
  59. (*0021 C4 4E FC*)             les   cx,[bp][-4]
  60. (*0024 8C C2*)                mov   dx,es
  61. (*0026 8C DB*)                mov   bx,ds
  62. (*0028 9A 00 00 00 00*)       call  far _memmove
  63. (*002D 90*)                   nop   
  64. (*002E 1F*)                   pop   ds
  65. (*002F 8B E5*)                mov   sp,bp
  66. (*0031 5D*)                   pop   bp
  67. (*0032 CA 02 00*)             ret far 2
  68.  
  69. segment CLMEM_TEXT(CODE,00048H) (*segment length = 00033H*)
  70.                             public CMemSet:
  71. (*0000 55*)                   push  bp
  72. (*0001 BD 0E 00*)             mov   bp,0EH
  73. (*0004 9A 00 00 00 00*)       call  far F$StkChk
  74. (*0009 8B EC*)                mov   bp,sp
  75. (*000B 83 EC 08*)             sub   sp,8
  76. (*000E 89 56 FE*)             mov   [bp][-2],dx
  77. (*0011 89 4E FC*)             mov   [bp][-4],cx
  78. (*0014 89 46 F8*)             mov   [bp][-8],ax
  79. (*0017 89 5E FA*)             mov   [bp][-6],bx
  80. (*001A C4 5E F8*)             les   bx,[bp][-8]
  81. (*001D 8B 46 FC*)             mov   ax,[bp][-4]
  82. (*0020 8B 56 FE*)             mov   dx,[bp][-2]
  83. (*0023 8B C8*)                mov   cx,ax
  84. (*0025 8B C3*)                mov   ax,bx
  85. (*0027 8C C3*)                mov   bx,es
  86. (*0029 9A 00 00 00 00*)       call  far _memset
  87. (*002E 90*)                   nop   
  88. (*002F 8B E5*)                mov   sp,bp
  89. (*0031 5D*)                   pop   bp
  90. (*0032 CB*)                   ret far 0
  91.  
  92. segment CLMEM_TEXT(CODE,00048H) (*segment length = 00033H*)
  93.                             public CMemWSet:
  94. (*0000 55*)                   push  bp
  95. (*0001 BD 0E 00*)             mov   bp,0EH
  96. (*0004 9A 00 00 00 00*)       call  far F$StkChk
  97. (*0009 8B EC*)                mov   bp,sp
  98. (*000B 83 EC 08*)             sub   sp,8
  99. (*000E 89 56 FE*)             mov   [bp][-2],dx
  100. (*0011 89 4E FC*)             mov   [bp][-4],cx
  101. (*0014 89 46 F8*)             mov   [bp][-8],ax
  102. (*0017 89 5E FA*)             mov   [bp][-6],bx
  103. (*001A C4 5E F8*)             les   bx,[bp][-8]
  104. (*001D 8B 46 FC*)             mov   ax,[bp][-4]
  105. (*0020 8B 56 FE*)             mov   dx,[bp][-2]
  106. (*0023 8B C8*)                mov   cx,ax
  107. (*0025 8B C3*)                mov   ax,bx
  108. (*0027 8C C3*)                mov   bx,es
  109. (*0029 9A 00 00 00 00*)       call  far _memwset
  110. (*002E 90*)                   nop   
  111. (*002F 8B E5*)                mov   sp,bp
  112. (*0031 5D*)                   pop   bp
  113. (*0032 CB*)                   ret far 0
  114.  
  115. segment CLMEM_TEXT(CODE,00048H) (*segment length = 00000H*)
  116.  
  117. end
  118.